package com.whfc.fmam.dao;

import com.whfc.fmam.entity.bo.FmamSupplier;
import com.whfc.fmam.entity.dto.FmamSupplierDTO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

@Repository
public interface FmamSupplierMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(FmamSupplier record);

    int insertSelective(FmamSupplier record);

    FmamSupplier selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(FmamSupplier record);

    int updateByPrimaryKey(FmamSupplier record);

    /**
     * 查询供应商列表
     *
     * @param deptId       组织机构ID
     * @param lastSyncTime 上一次同步时间
     * @return
     */
    List<FmamSupplier> selectSyncSupplierList(@Param("deptId") Integer deptId, @Param("lastSyncTime") Date lastSyncTime);

    /**
     * 供/收料 单位列表
     *
     * @param category 供应商类别
     * @param deptId
     */
    List<FmamSupplierDTO> selectFmamSupplierByCategoryAndDeptId(@Param("category") Integer category, @Param("deptId") Integer deptId);

    /**
     * 逻辑删除
     *
     * @param id
     */
    void deleteLogicById(@Param("id") Integer id);

    /**
     * 根据供应商类别及合作单位ID查询数据库中已存在的物资合作商
     *
     * @param corpId
     * @param category
     * @return
     */
    FmamSupplierDTO selectSupplierByCorpIdAndCategory(@Param("corpId") Integer corpId, @Param("category") Integer category);

    /**
     * 根据deptId查找供应商列表
     *
     * @param deptId deptId
     * @return List<FmamSupplierDTO>
     */
    List<FmamSupplierDTO> selectByDeptId(@Param("deptId") Integer deptId);

    /**
     * 获取指定机构下随机供应商
     *
     * @param deptId   组织机构ID
     * @param category 类型
     * @return 供应商
     */
    FmamSupplier getRandomSupplier(@Param("deptId") Integer deptId, @Param("category") Integer category);

    int deleteBatch(@Param("idList")List<Integer> idList);

}